package com.obelisco.vista.herramientas;

import java.io.Serializable;

import nextapp.echo2.app.Color;
import nextapp.echo2.app.Component;
import nextapp.echo2.app.ContentPane;
import nextapp.echo2.app.Extent;
import nextapp.echo2.app.Window;

import com.obelisco.vista.componentes.IVentana;
import com.obelisco.vista.componentes.Ventana;
import com.obelisco.vista.controles.*;

import echopointng.able.Scrollable;
import echopointng.layout.ScrollableDisplayLayoutData;

/**
 * An Echo2 user interface to the application.
 * 
 * @author Karl Stenerud
 */
public class ManejadorUI extends Window implements Serializable {

	private IVentanaFactory ventanaFactory;

	private String inicio;
	
	private String error;

	private int ancho = 800;

	private int alto = 600;

	private ContentPane contenedor;

	private IVentana actual;

	public ManejadorUI() {
		super();
		contenedor = new ContentPane();		
		setContent(contenedor);
	}

	public String getInicio() {
		return inicio;
	}

	public void setInicio(String inicio) {
		this.inicio = inicio;
	}

	public void iniciar() {
		mostrarVentana(this.getInicio());
	}
	
	public void error() {
		mostrarVentana(this.getError());
	}

	public void mostrarVentana(String nombre) {
		
		IVentana ventana = ventanaFactory.crearVentana(nombre);
//		if (null != this.actual) {
//
//			if (ventana == this.actual) {
//				return;
//			}
//
//			if (!this.actual.salir()) {
//				return;
//			}
//
//			contenedor.remove((Component) this.actual);
//		}

		this.actual = ventana;

		if (ventana instanceof Ventana) {
			Ventana v = (Ventana) ventana;
			if (v.isIncrustado()) {
				this.actual.mostrar(contenedor);
			} else {
				this.actual.mostrarDialogo(contenedor, v.getAncho(), v.getAlto());
			}

		}

	}

	public IVentanaFactory getVentanaFactory() {
		return ventanaFactory;
	}

	public void setVentanaFactory(IVentanaFactory ventanaFactory) {
		this.ventanaFactory = ventanaFactory;
	}

	public int getAlto() {
		return alto;
	}

	public void setAlto(int alto) {
		this.alto = alto;
	}

	public int getAncho() {
		return ancho;
	}

	public void setAncho(int ancho) {
		this.ancho = ancho;
	}

	public ContentPane getContenedor() {
		return contenedor;
	}

	public String getError() {
		return error;
	}

	public void setError(String error) {
		this.error = error;
	}

}
